import 'package:equatable/equatable.dart';

class ImageSettings extends Equatable {
  const ImageSettings({
    required this.imagesEnabled,
    required this.imageEnablementChangePermitted,
    required this.imageEnablementEffective,
  });

  final bool imagesEnabled;
  final bool imageEnablementChangePermitted;
  final bool imageEnablementEffective;

  @override
  List<Object?> get props {
    return [
      imagesEnabled,
      imageEnablementChangePermitted,
      imageEnablementEffective,
    ];
  }

  ImageSettings copyWith({
    bool Function()? imagesEnabled,
    bool Function()? imageEnablementChangePermitted,
    bool Function()? imageEnablementEffective,
  }) {
    return ImageSettings(
      imagesEnabled: imagesEnabled == null ? this.imagesEnabled : imagesEnabled(),
      imageEnablementChangePermitted: imageEnablementChangePermitted == null
          ? this.imageEnablementChangePermitted
          : imageEnablementChangePermitted(),
      imageEnablementEffective: imageEnablementEffective == null
          ? this.imageEnablementEffective
          : imageEnablementEffective(),
    );
  }
}
